package com.foreknow.demo14;

import java.sql.*;
import java.util.ArrayList;
import java.util.List;

/**
     * 预处理
     */
    public class JdbcDemoPre {
        public static void main(String[] args) {
            try {
                //1. 加载驱动程序
                Class.forName("com.mysql.jdbc.Driver");
                //2. 获取连接Connection
                Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/basic23","root","123456");
                //3. 获取PreparedStatement接口：用于执行动态的sql（?）
//                PreparedStatement pstmt = conn.prepareStatement("select * from user where id=?");//创建一个 PreparedStatement对象，用于将SQL语句发送到数据库。
                PreparedStatement pstmt = conn.prepareStatement("INSERT INTO user(username,password) VALUES(?,?)");//创建一个 PreparedStatement对象，用于将SQL语句发送到数据库。
                //4. 执行对数据库的操作(insert update select delete)
                //要将？替换为一个具体的值
                pstmt.setInt(1,7);
                pstmt.setString(1,"abc123");
                pstmt.setString(2,"22222");
                int isRight = pstmt.executeUpdate();
                System.out.println();

                //ResultSet表示结果集：主要的作用是保存从数据库中查询到的数据(一条数据就是一个对象)
                ResultSet rs = pstmt.executeQuery(); //执行给定的SQL语句，该语句返回单个 ResultSet对象。
                List<User> list = new ArrayList<>();
                while (rs.next()) {
                    //获取到当前行数据(第一列，第二列.....第n列)
                    int id = rs.getInt("id"); //获取到第一列的值
                    String username = rs.getString("username");//获取到第二列的值
                    String password = rs.getString("password");//获取到第三列的值
                    //System.out.println(id+"---"+username+"---"+password);
                    User user = new User();
                    user.setId(id);
                    user.setUsername(username);
                    user.setPassword(password);
                    //将对象保存到集合中
                    list.add(user);
                }
                //遍历集合
                for (User user:list) {
                    System.out.println(user.getUsername());
                }
//            System.out.println("-------------------insert delete update------------------------------");
//            int isRigth = statement.executeUpdate("INSERT INTO user(username,password) VALUES('testjdbc','111111')");
//            if(isRigth==1) {
//                System.out.println("dml success......");
//            }else {
//                System.out.println("dml error......");
//            }
                //关闭资源
//            rs.close();
//            statement.close();
//            conn.close();
            } catch (ClassNotFoundException e) {
                e.printStackTrace();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
